package com.hc.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.jetbrains.annotations.NotNull;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
    * 角色表
    */
@ApiModel(value="com-hc-domain-Role")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "tb_role")
public class Role implements Serializable,Comparable<Role> {
    private static final long serialVersionUID = 1682563937089116351L;
    /**
     * 编号
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value="编号")
    private Integer id;

    /**
     * 角色名称
     */
    @TableField(value = "name")
    @ApiModelProperty(value="角色名称")
    private String name;

    /**
     * 角色关键字
     */
    @TableField(value = "code")
    @ApiModelProperty(value="角色关键字")
    private String code;

    /**
     * 排序值（默认是50）
     */
    @TableField(value = "level")
    @ApiModelProperty(value="排序值（默认是50）")
    private Integer level;

    /**
     * 备注信息
     */
    @TableField(value = "info")
    @ApiModelProperty(value="备注信息")
    private String info;

    /**
     * 启用状态：0禁用  1启用
     */
    @TableField(value = "status")
    @ApiModelProperty(value="启用状态：0禁用  1启用")
    private Boolean status;

    /**
     * 创建时间
     */
    @TableField(value = "createTime")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(value = "updateTime")
    @ApiModelProperty(value="更新时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    @Override
    public int compareTo(@NotNull Role o) {
        return o.getLevel()-this.getLevel();
    }
}
